Typical examples of image-formation devices include printers, such as inkjet and laser printers. Such devices form images on media. For instance, they are used to print hardcopies of word processing documents, digital photographs, and other types of electronic files. Image-formation devices commonly include firmware that stores the executable instructions for controlling the devices.
For instance, the firmware may store the instructions that enable the image-formation devices to convert electronic files received from host devices, such as computers, into formats that the image-formation mechanisms of the devices can understand. The image-formation mechanisms are then able to form images on the media as desired. Examples of image-formation mechanisms include print engines.
Periodically the firmware of image-formation devices may have to be upgraded. Bugs within the firmware may have been found which prevent the devices from operating optimally. The firmware may also be upgraded so that the image-formation devices can support additional features. For instance, the firmware may be upgraded so that the devices are able to support additional printer features or so that the firmware can support additional devices.
Upgrading the firmware of image-formation devices is usually an all-or-nothing affair. A new version of firmware for an image-formation device is obtained, typically by the end user, and overwrites the existing firmware already within the image-formation device. This is accomplished even though typically most of the existing firmware within the image-formation device is unchanged as compared to the new version of firmware.
In addition, image-formation devices typically ship from the manufacturer with a complete version of the firmware. When new devices are being designed, this means that the engineers have to ensure that a complete working firmware has been finished before the devices can be released to distributors and sold to end users. The engineers may thus face serious time pressures to ship complete working firmware.